package service

import (
	"blog/app/model"
	"github.com/gogf/gf/frame/g"
	"github.com/gogf/gf/net/ghttp"
)

// Middleware 中间件管理服务
var Middleware = middlewareService{}

type middlewareService struct{}

// Ctx 自定义上下文对象
func (s *middlewareService) Ctx(r *ghttp.Request) {
	// 初始化，务必最开始执行
	customCtx := model.Context{
		List: model.List,
	}
	Context.Init(r, &customCtx)

	// 给模板传递上下文对象中的键值对
	r.Assigns(g.Map{
		"tags":customCtx.List.Tags,
	})

	// 执行后续中间件
	r.Middleware.Next()
}

